import request from '@/config/axios'

// 通知 VO
export interface NoticeVO {
  id: number // 编号
  noticeTitle: string // 通知标题
  iconUrl: string // 图标
  noticeType: string // 分类
  userIds: string[] // 通知的人员范围
  noticeContent: string // 通知内容
  fileUrls: string[] // 附件地址
  sort: number // 排序
  status: number // 状态
  deptId: number // 部门ID
  userName: string //创建者
  userNames: string[] //公告范围
  createTime: Date // 创建时间
  startTime: Date // 发布时间
  endTime: Date // 过期时间
}

// 通知 API
export const NoticeApi = {
  // 查询通知分页
  getNoticePage: async (params: any) => {
    return await request.get({ url: `/school/notice/page`, params })
  },

  // 查询通知详情
  getNotice: async (id: number) => {
    return await request.get({ url: `/school/notice/get?id=` + id })
  },

  // 新增通知
  createNotice: async (data: NoticeVO) => {
    return await request.post({ url: `/school/notice/create`, data })
  },

  // 修改通知
  updateNotice: async (data: NoticeVO) => {
    return await request.put({ url: `/school/notice/update`, data })
  },

  // 删除通知
  deleteNotice: async (id: number) => {
    return await request.delete({ url: `/school/notice/delete?id=` + id })
  },

  // 导出通知 Excel
  exportNotice: async (params) => {
    return await request.download({ url: `/school/notice/export-excel`, params })
  },

  // ==================== 子表（通知阅读记录） ====================

  // 获得通知阅读记录分页
  getNoticeRecordPage: async (params) => {
    return await request.get({ url: `/school/notice/notice-record/page`, params })
  },
  /**
   * 保存通知阅读记录-统计查看次数
   * @param {string} noticeId 通知编号
   * @returns
   */
  updateNoticeRecord: async (noticeId: number) => {
    return await request.post({
      url: `/school/notice/notice-record/record`,
      params: { noticeId }
    })
  },
  // 获得通知阅读记录
  getNoticeRecord: async (id: number) => {
    return await request.get({ url: `/school/notice/notice-record/get?id=` + id })
  }
}
